package com.ailk.bigdata.etl.realstream.server.service;

import com.ailk.bigdata.etl.realstream.server.model.KafkaProduceException;
import com.ailk.bigdata.etl.realstream.server.monitor.EventCounter;

/**
 * 
 * @description 实时数据分发
 * @author [xuwei3]
 * @version [版本号,2014-11-4]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface DataDistributeService
{

	/**
	 * 
	 * @description 初始化数据接收线程
	 * @param eventCount
	 */
	public void initDataAcceptThread(EventCounter eventCount);
	
	/**
	 * 
	 * @description 初始化数据格式化责任链
	 */
	public void initDataFormatHandler();

	/**
	 * 
	 * @description 数据发送被动模式端口监听启动
	 */
	public void startPassiveSendListenerTh();

	/**
	 * 
	 * @description 数据发送主动模式启动
	 */
	public void startInitiativeSendThread();

	/**
	 * 
	 * @throws KafkaProduceException 
	 * @description 启动数据分发线程池
	 */
	public void initDataDistributeTh(EventCounter eventCounter) throws KafkaProduceException;

	/**
	 * @description TODO
	 */
	void startBackToFilesystemThread();

	/**
	 * 
	 * @description 消息分发被动模式
	 */
	void startMessageSendThread();
	
	/**
	 * 
	 * @description TODO
	 */
	public void initKafkaMessSendTh();

}
